package cc.messcat.service.fupin;

import cc.messcat.common.model.Pager;
import cc.messcat.common.service.BaseService;
import cc.messcat.entity.fupin.PoorVillage;
import cc.messcat.entity.fupin.PoorVillageHistory;
import cc.messcat.entity.system.McUser;
import org.apache.poi.hssf.usermodel.HSSFWorkbook;

import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpSession;
import java.util.Date;
import java.util.List;

public interface PoorVillageService extends BaseService<PoorVillage> {

    Pager<PoorVillage> getPager(int pageNo, int pageSize);

    Pager<PoorVillage> getNaPager(int pageNo, int pageSize);

    Long addPoorVillage(PoorVillage poorVillage);

    void modifyPoorVillage(PoorVillage poorVillage);

    void removePoorVillage(Long id);

    PoorVillage get(Long id);

    List queryPoList();

    List queryPoList1();

    void modifyPoorVillages(PoorVillage poorVillage);

    PoorVillage getPoorVillage(PoorVillage poorVillage);

    List<PoorVillage> poorVillages(Long id);

    Pager<PoorVillage> getNaPagers(int pageNo, int pageSize, PoorVillage poorVillage, String year, McUser user);

    Pager<PoorVillage> getPoPager(int pageNo, int pageSize, PoorVillage poorVillage, String year, McUser user);

    Pager<PoorVillage> getVillagesByCondition(int pageNo, int pageSize, PoorVillage poorVillage, McUser user);

    List<PoorVillage> getVillagesByCondition(PoorVillage poorVillage);

    PoorVillage getVillageByAreaId(Long areaId);

    Date getAddTimeById(Long id);

    PoorVillage getVillageByAreaIdWithClear(Long id, String string);

    boolean isExsitVillage(Long id, String annual);

    Pager<PoorVillage> getPoPager2(int pageNo, int pageSize, PoorVillage poorVillage, String year, McUser user);

    Pager<PoorVillage> getPoPager3(int pageNo, int pageSize, PoorVillage poorVillage, String year, McUser user);

    List unitsNr( );

    String adduploadFile(String file, HttpSession session, McUser mcUser) throws Exception;

    HSSFWorkbook exportNaVillage(String year, PoorVillage poorVillage, McUser user,
                                 HttpServletRequest req);

    HSSFWorkbook exportPoVillage(String year, PoorVillage poorVillage, McUser user, HttpServletRequest req);


    Pager poorVillageStatistics(McUser user, Integer pageNo, Integer pageSize, String year, String country, String village, String status);

    Pager poorVilageDevelopmentclass(McUser user, Integer pageNo, Integer pageSize, String year, String country, String village, String status);

    HSSFWorkbook exportPoorVillageStatistics(McUser user, Integer pageNo, Integer pageSize, String year, String country, String village,
                                             String status);

    Pager poorVilageLandformclass(McUser user, Integer pageNo, Integer pageSize, String year, String country,
                                  String village, String status);

    HSSFWorkbook exportDevelopmentclass(McUser user, Integer pageNo, Integer pageSize, String year, String country,
                                        String village, String type);

    HSSFWorkbook exportLandformclass(McUser user, Integer pageNo, Integer pageSize, String year, String country,
                                     String village, String type);

    Pager poorVilageLand(McUser user, Integer pageNo, Integer pageSize, String year, String country,
                         String village, String type);

    HSSFWorkbook exportPoorVilageLand(McUser user, Integer pageNo, Integer pageSize, String year, String country,
                                      String village, String type);

    Pager poorVilageOfficialsAndMembers(McUser user, Integer pageNo, Integer pageSize, String year,
                                        String country, String village, String type);

    HSSFWorkbook exportPoorVilageOfficialsAndMembers(McUser user, Integer pageNo, Integer pageSize, String year,
                                                     String country, String village, String type);

    Pager ruralTourism(McUser user, Integer pageNo, Integer pageSize, String year, String country, String village,
                       String status);

    Pager satelliteMonitor(McUser user, Integer pageNo, Integer pageSize, String year, String country,
                           String village, String status);

    HSSFWorkbook exportruraiTourism(McUser user, Integer pageNo, Integer pageSize, String year, String country,
                                    String village, String type);

    HSSFWorkbook exportsatelliteMonitor(McUser user, Integer pageNo, Integer pageSize, String year, String country,
                                        String village, String type);

    Pager construction(McUser user, Integer pageNo, Integer pageSize, String year, String country,
                       String village, String status);

    HSSFWorkbook exportconstruction(McUser user, Integer pageNo, Integer pageSize, String year, String country,
                                    String village, String type);

    Pager information(McUser user, Integer pageNo, Integer pageSize, String year, String country, String village,
                      String status);

    Pager pvcStatistics(McUser user, Integer pageNo, Integer pageSize, String year, String country, String village,
                        String status);

    Pager duplicateIDnumber(McUser user, Integer pageNo, Integer pageSize, String year, String country,
                            String village);

    HSSFWorkbook exportinformation(McUser user, Integer pageNo, Integer pageSize, String year, String country,
                                   String village, String type);

    HSSFWorkbook duplicateId(McUser user, Integer pageNo, Integer pageSize, String year, String country,
                             String village);

    Pager poorVilageRoad(McUser user, Integer pageNo, Integer pageSize, String year, String country,
                         String village, String type);

    HSSFWorkbook exportPoorVilageRoad(McUser user, Integer pageNo, Integer pageSize, String year, String country,
                                      String village, String type);

    Pager poorVilageWater(McUser user, Integer pageNo, Integer pageSize, String year, String country,
                          String village, String type);

    HSSFWorkbook exportPoorVilageWater(McUser user, Integer pageNo, Integer pageSize, String year, String country,
                                       String village, String type);

    Pager poorVilageDanger(McUser user, Integer pageNo, Integer pageSize, String year, String country,
                           String village, String type);

    HSSFWorkbook exportPoorVilageDanger(McUser user, Integer pageNo, Integer pageSize, String year, String country,
                                        String village, String type);

    Pager poorVilageInsurance(McUser user, Integer pageNo, Integer pageSize, String year, String country,
                              String village, String type);

    HSSFWorkbook exportPoorVilageInsurance(McUser user, Integer pageNo, Integer pageSize, String year,
                                           String country, String village, String type);

    Pager poorVilageCharacteristic(McUser user, Integer pageNo, Integer pageSize, String year, String country,
                                   String village, String type);

    HSSFWorkbook exportPoorVilageCharacteristic(McUser user, Integer pageNo, Integer pageSize, String year,
                                                String country, String village, String type);

    Pager poordecreaseofPopulation(McUser user, Integer pageNo, Integer pageSize, String year, String country,
                                   String village, String type);

    HSSFWorkbook exportpoordecreaseofPopulation(McUser user, Integer pageNo, Integer pageSize, String year,
                                                String country, String village, String type);

    HSSFWorkbook exportPvcStatistics(McUser user, Integer pageNo, Integer pageSize, String year, String country,
                                     String village, String status);

    Pager perIncomeStatistics(McUser user, Integer pageNo, Integer pageSize, String year, String country, String village,
                              String status);

    HSSFWorkbook exportPerIncomeStatistics(McUser user, Object object, Object object2, String year, String country,
                                           String village, String status);

    Pager villageIncomeStatistics(McUser user, Integer pageNo, Integer pageSize, String year, String country, String village,
                                  String status);

    HSSFWorkbook exportVillageIncomeStatistics(McUser user, Object object, Object object2, String year, String country,
                                               String village, String status);

    Pager wtpStatistics(McUser user, Integer pageNo, Integer pageSize, String year, String country, String village,
                        String status);

    HSSFWorkbook exportWtpStatistics(McUser user, Object object, Object object2, String year, String country, String village,
                                     String status);

    HSSFWorkbook exportPoVillageZ(String year, PoorVillage poorVillage, McUser user, HttpServletRequest req);

    HSSFWorkbook exportNaVillageZ(String year, PoorVillage poorVillage, McUser user, HttpServletRequest req);

    List<PoorVillage> getPoorVillages(Long id);

    boolean isExsitName(Long id, String string, String annual);

    PoorVillage isName(Long id);

    Long addPoorVillageHistory(PoorVillageHistory poorVillageHistory);

    PoorVillageHistory getPoorVillageHistory(Long id);

	boolean isExsitPoorVillage(PoorVillage poorVillage);

    void updatePoorFamilyCount(String annual, Long areaID, Long poorFamilyCount);

    void updateFamilyCount(String annual, Long areaID, Long familyCount);
}
